package com.betterjr.modules.application.dubbo;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;

import com.alibaba.dubbo.config.annotation.Service;
import com.betterjr.common.web.AjaxObject;
import com.betterjr.modules.application.IAmsMenuInfoService;
import com.betterjr.modules.application.entity.AmsMenuInfo;
import com.betterjr.modules.application.service.AmsMenuInfoService;
import com.betterjr.modules.rule.service.RuleServiceDubboFilterInvoker;

/**
 * 
 * @ClassName: AmsMenuInfoDubboService 
 * @Description: 菜单远程接口调用累（RPC） 
 * @author xuyp
 * @date 2017年11月21日 上午9:06:00 
 *
 */
@Service(interfaceClass = IAmsMenuInfoService.class)
public class AmsMenuInfoDubboService implements IAmsMenuInfoService {

    @Autowired
    private AmsMenuInfoService menuInfoService;

    /**
     * 
     * <p>Overriding Method of webSaveAddMenuInfo</p>  
     * <p>Description: 菜单新增 </p> 
     * @param anParentId 父菜单id
     * @param anMenuName 菜单名称
     * @param anApplicationId  应用id
     * @return 
     * @see com.betterjr.modules.application.IAmsMenuInfoService#webSaveAddMenuInfo(java.lang.Long, java.lang.String, java.lang.Long) 
     * @author xuyp
     * @date 2017年11月21日 上午9:06:34
     */
    @Override
    public String webSaveAddMenuInfo(Long anParentId, String anMenuName, Long anApplicationId) {

        return AjaxObject.newOk("新增成功", menuInfoService.saveAddMenuInfo(anParentId, anMenuName, anApplicationId))
                .toJson();
    }

    /**
     * 
     * <p>Overriding Method of webSaveUpdateMenuInfo</p>  
     * <p>Description: 修改菜单信息</p> 
     * @param anMap
     * @param anRourceIds 资源ids列表
     * @return 
     * @see com.betterjr.modules.application.IAmsMenuInfoService#webSaveUpdateMenuInfo(java.util.Map, java.lang.String) 
     * menuName
     * menuTitle
     * description
     * url
     * targetForm
     * applicationId
     * ruleList
     * parentId
     * endNode
     * @author xuyp
     * @date 2017年11月21日 上午9:07:24
     */
    @Override
    public String webSaveUpdateMenuInfo(Map<String, Object> anMap, String anRourceIds) {

        AmsMenuInfo menuInfo = RuleServiceDubboFilterInvoker.getInputObj();
        return AjaxObject.newOk("修改成功", menuInfoService.saveUpdateMenuInfo(menuInfo, anRourceIds)).toJson();
    }

    /**
     * 
     * <p>Overriding Method of webFindMenuInfoDetail</p>  
     * <p>Description: 查询菜单详情 </p> 
     * @param anId 菜单id
     *   resourceModelType 1 返回资源封装后的信息
     * @return 
     * @see com.betterjr.modules.application.IAmsMenuInfoService#webFindMenuInfoDetail(java.lang.Long) 
     * @author xuyp
     * @date 2017年11月21日 上午9:08:19
     */
    @Override
    public String webFindMenuInfoDetail(Long anId, String anResourceModelType) {

        return AjaxObject.newOk("查询成功", menuInfoService.findMenuInfoDetail(anId, anResourceModelType)).toJson();
    }

    /**
     * 
     * <p>Overriding Method of webSelectMenuListByApplicaitonid</p>  
     * <p>Description: 通过应用查询菜单信息</p> 
     * @param anApplicaitonId   应用id
     * @param anFlag  是否查询资源信息  1 查询    9 不查询
     * @return 
     * @see com.betterjr.modules.application.IAmsMenuInfoService#webSelectMenuListByApplicaitonid(java.lang.Long, java.lang.String) 
     * @author xuyp
     * @date 2017年11月21日 上午9:08:48
     */
    @Override
    public String webSelectMenuListByApplicaitonid(Long anApplicaitonId, String anFlag) {

        return AjaxObject.newOkWithPage("查询成功", menuInfoService.selectMenuPageByApplicaitonid(anApplicaitonId, anFlag))
                .toJson();
    }

    /**
     * 查询当前用户所有的菜单信息 
     * @param anBusinStatus  状态 1未生效 2已生效
     * @param anFlag     是否查询资源信息  1 查询    9 不查询
     * <p>Overriding Method of webQueryCurrentUserAllMenuInfo</p>  
     * <p>Description: </p> 
     * @param anBusinStatus
     * @param anFlag
     * @return 
     * @see com.betterjr.modules.application.IAmsMenuInfoService#webQueryCurrentUserAllMenuInfo(java.lang.String, java.lang.String) 
     * @author xuyp
     * @date 2017年12月12日 下午5:08:41
     */
    @Override
    public String webQueryCurrentUserAllMenuInfo(String anBusinStatus, String anFlag) {

        return AjaxObject.newOk("查询成功", menuInfoService.queryCurrentUserAllMenuInfo(anBusinStatus, anFlag)).toJson();
    }

    @Override
    public String webSaveDeleteMenuInfoById(Long anMenuId) {

        return AjaxObject.newOk("操作成功", menuInfoService.saveDeleteMenuInfoById(anMenuId)).toJson();
    }

}
